package systole.persistence.brokersInterface;

import java.util.List;
import systole.domain.clinicalInformation.Family;
import systole.domain.clinicalInformation.FamilyPatientBackground;
import systole.domain.persons.Patient;
import systole.exceptions.ExceptionDAO;

/**
 * @author jmj
 *
 */
public interface FamilyBackgroundBroker {

    /**
     * @param familyPatientBackground
     * @throws ExceptionDAO
     */
    public void insert(FamilyPatientBackground familyPatientBackground) throws ExceptionDAO;

    /**
     * @param familyPatientBackground
     * @throws ExceptionDAO
     */
    public void update(FamilyPatientBackground familyPatientBackground) throws ExceptionDAO;

    /**
     * @param familyPatientBackground
     * @throws ExceptionDAO
     */
    public void delete(FamilyPatientBackground familyPatientBackground) throws ExceptionDAO;

    /**
     * @param patient
     * @return all patient family background
     * @throws ExceptionDAO
     */
    public List<FamilyPatientBackground> getAllFamilyPatientBackground(Patient patient)
            throws ExceptionDAO;

    /**
     *
     * @param family
     * @param patient
     * @return if patient family background patient exist
     * @throws ExceptionDAO
     */
    public boolean existFamilyPatientBackground(Family family, Patient patient)
            throws ExceptionDAO;
}
